home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue67 / Threads / MultiReadExclusiveWrite.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-11-03  |  1.0 KB  |  56 lines

  1. unit MultiReadExclusiveWrite;
  2.  
  3. interface
  4.  
  5. uses
  6.   Classes,Windows,SysUtils,Messages,syncobjs;
  7.  
  8. type
  9.   TAnyObject=class(TObject)
  10.   private
  11.    fMultiReadExclusiveWrite:TMultiReadExclusiveWriteSynchronizer;
  12.    fStatus:string;
  13.    function GetStatus: string;
  14.    procedure SetStatus(const Value: string);
  15.   public
  16.    constructor Create;
  17.    destructor Destroy;override;
  18.    property Status:string read GetStatus write SetStatus;
  19.   end;
  20.  
  21. implementation
  22.  
  23. constructor TAnyObject.Create;
  24. begin
  25.  inherited create;
  26.  fMultiReadExclusiveWrite:=TMultiReadExclusiveWriteSynchronizer.Create;
  27. end;
  28.  
  29. destructor TAnyObject.Destroy;
  30. begin
  31.  FreeAndNil(fMultiReadExclusiveWrite);
  32.  inherited;
  33. end;
  34.  
  35. function TAnyObject.GetStatus: string;
  36. begin
  37.  fMultiReadExclusiveWrite.BeginRead;
  38.  try
  39.   Result:=fStatus;
  40.  finally
  41.   fMultiReadExclusiveWrite.EndRead;
  42.  end;
  43. end;
  44.  
  45. procedure TAnyObject.SetStatus(const Value: string);
  46. begin
  47.  fMultiReadExclusiveWrite.BeginWrite;
  48.  try
  49.   fStatus:=Value;
  50.  finally
  51.   fMultiReadExclusiveWrite.EndWrite;
  52.  end;
  53. end;
  54.  
  55. end.
  56.